package com.calligraphy.product.service;

import com.calligraphy.product.model.ProductInfo;
import com.calligraphy.product.common.InventoryDTO;
import com.calligraphy.product.common.ProductInfoOutput;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * @Author hy
 * @Date 2019/1/2 10:18
 **/
public interface ProductService {

    ProductInfo findOne(String productId);

    ProductInfo save(ProductInfo productInfo);

    List<ProductInfo> findUpAll();

    Page<ProductInfo> findAll(Pageable pageable);

    /**
     * 加库存
     * @param InventoryDTOList
     */
    void increaseStock(List<InventoryDTO> InventoryDTOList);

    /**
     * 扣库存
     * @param InventoryDTOList
     */
    void decreaseStock(List<InventoryDTO> InventoryDTOList);

    /**
     * 上架
     * @param productId
     */
    ProductInfo onSale(String productId);

    /**
     * 下架
     * @param productId
     */
    ProductInfo offSale(String productId);


    List<ProductInfoOutput> findList(List<String> productIdList);

}
